package org.pointex.service.impl;

import java.io.Serializable;
import java.util.Hashtable;

import org.pointex.common.service.impl.BaseServiceImpl;
import org.pointex.common.util.RedisUtil;
import org.pointex.common.util.constant.Constant;
import org.pointex.dao.MaxNoDao;
import org.pointex.dao.impl.ConvertIndentDaoImpl;
import org.pointex.dao.impl.ConvertRuleDetailDaoImpl;
import org.pointex.dao.impl.MaxNoDaoImpl;
import org.pointex.domain.ConvertIndent;
import org.pointex.domain.ConvertRuleDetail;
import org.pointex.domain.MaxNo;
import org.pointex.service.ConvertIndentService;
import org.pointex.service.ConvertRuleDetailService;
import org.pointex.service.MaxNoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;

/**
 * 
 * @ClassName: ConvertRuleDetailServiceImpl
 * @Description: TODO(这里用一句话描述这个类的作用)
 * @author Kenny_Z' szqiuk@gmail.com
 * @date 2016年10月23日 下午4:02:01
 *
 */
@Service("MaxNoService")
public class MaxNoServiceImpl extends BaseServiceImpl<MaxNo, Serializable>
		implements MaxNoService {

	@Autowired
	private MaxNoDao dao;
	

	

	protected String getnum5(int num) {
		String result = "";
		switch ((num + "").length()) {
		case 1:
			result = "0000" + num;
			break;
		case 2:
			result = "000" + num;
			break;
		case 3:
			result = "00" + num;
			break;
		case 4:
			result = "0" + num;
			break;
		default:
			result = num + "";
			break;
		}
		return result;
	}




	@Override
	public String updateGetNextNo(String NoType) {
		String result = "";
		int maxNo=0;
			MaxNo maxNoObj = dao.selectByPrimaryKey(1);
			MaxNo maxNoObj_temp=new MaxNo();
			maxNoObj_temp.setId(1);
			if(NoType.equals(Constant.MAXNO_CI_NO)){
				maxNo=maxNoObj.getCiNo();
				maxNoObj_temp.setCiNo(maxNo+1);
			}else if(NoType.equals(Constant.MAXNO_CTR_NO)){
				maxNo=maxNoObj.getCtrNo();
				maxNoObj_temp.setCtrNo(maxNo+1);
			}else if(NoType.equals(Constant.MAXNO_DE_NO)){
				maxNo=maxNoObj.getDeNo();
				maxNoObj_temp.setDeNo(maxNo+1);
			}else if(NoType.equals(Constant.MAXNO_CB_NO)){
				maxNo=maxNoObj.getCbNo();
				maxNoObj_temp.setCbNo(maxNo+1);
			}else if(NoType.equals(Constant.MAXNO_CI_NO)){
				maxNo=maxNoObj.getCiNo();
				maxNoObj_temp.setCiNo(maxNo+1);
			}else if(NoType.equals(Constant.MAXNO_CM_NO)){
				maxNo=maxNoObj.getCmNo();
				maxNoObj_temp.setCmNo(maxNo+1);
			}else if(NoType.equals(Constant.MAXNO_CR_NO)){
				maxNo=maxNoObj.getCrNo();
				maxNoObj_temp.setCrNo(maxNo+1);
			}else if(NoType.equals(Constant.MAXNO_CT_NO)){
				maxNo=maxNoObj.getCtNo();
				maxNoObj_temp.setCtNo(maxNo+1);
			}else if(NoType.equals(Constant.MAXNO_PIO_NO)){
				maxNo=maxNoObj.getPioNo();
				maxNoObj_temp.setPioNo(maxNo+1);
			}else if(NoType.equals(Constant.MAXNO_PRO_NO)){
				maxNo=maxNoObj.getProNo();
				maxNoObj_temp.setProNo(maxNo+1);
			}else if(NoType.equals(Constant.MAXNO_PT_NO)){
				maxNo=maxNoObj.getPtNo();
				maxNoObj_temp.setPtNo(maxNo+1);
			}else if(NoType.equals(Constant.MAXNO_USER_NO)){
				maxNo=maxNoObj.getUserNo();
				maxNoObj_temp.setUserNo(maxNo+1);
			}
				
			// 用户编号(UA+5位数字)
			result = NoType + getnum5(maxNo+1);
			dao.updateByPrimaryKeySelective(maxNoObj_temp);
			return result.toString();
	}

}
